Upon system boot, a computer system executes a startup routine to self-test, identify, and initialize devices, memory, and other components of the system. Computer systems typically store the startup routine in nonvolatile memory, such as at an electrically erasable programmable read only memory (EEPROM) chip. The memory location of the startup routine is commonly referred to as the “boot block.”
In general, a computer system implicitly trusts the boot block, and, thus, the computer system implicitly trusts the startup routine contained by the boot block. As a result, corrupted startup routines, such as those created by malicious programmers, can exploit this trust to corrupt the computer system.